﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WeiXinSDK.MP
{
	public static class ApiUrl
	{
		/// <summary> 获取token </summary>
		public static string GetToken { get { return "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}"; } }

		/// <summary> 获取微信的回调IP集合 </summary>
		public static string GetCallBackIp { get { return "https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token={0}"; } }
		#region 客服接口

		/// <summary> 增加客服账户 </summary>
		public static string KFAccountCreate { get { return "https://api.weixin.qq.com/customservice/kfaccount/add?access_token={0}"; } }

		/// <summary> 修改客服账户 </summary>
		public static string KFAccountUpdate { get { return "https://api.weixin.qq.com/customservice/kfaccount/update?access_token={0}"; } }

		/// <summary> 删除客服账户 </summary>
		public static string KFAccountDelete { get { return "https://api.weixin.qq.com/customservice/kfaccount/del?access_token={0}"; } }

		/// <summary> 客服账户头像 头像图片文件必须是jpg格式，推荐使用640*640大小的图片以达到最佳效果 </summary>
		public static string KFAccountUploadHeadImg { get { return "http://api.weixin.qq.com/customservice/kfaccount/uploadheadimg?access_token={0}&kf_account={1}"; } }

		/// <summary> 获取客服账户列表 </summary>
		public static string KFAccountGetList { get { return "https://api.weixin.qq.com/cgi-bin/customservice/getkflist?access_token={0}"; } }

		/// <summary>
		/// 发送客服消息
		/// 当用户主动发消息给公众号的时候（包括发送信息、点击自定义菜单、订阅事件、扫描二维码事件、支付成功事件、用户维权），
		/// 微信将会把消息数据推送给开发者，开发者在一段时间内（目前修改为48小时）可以调用客服消息接口，
		/// 通过POST一个JSON数据包来发送消息给普通用户，在48小时内不限制发送次数。此接口主要用于客服等有人工消息处理环节的功能，方便开发者为用户提供更加优质的服务。
		/// </summary>
		public static string SendCustomMessage { get { return "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token={0}"; } }

		#endregion
		/// <summary> 创建二维码 </summary>
		public static string CreateQrCode { get { return "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token={0}"; } }

		/// <summary> 显示二维码 </summary>
		public static string ShowQrCode { get { return "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket={0}"; } }

		/// <summary>
		/// 群发消息接口 根据分组进行群发
		/// 1、对于认证订阅号，群发接口每天可成功调用1次，此次群发可选择发送给全部用户或某个分组；
		/// 2、对于认证服务号虽然开发者使用高级群发接口的每日调用限制为100次，但是用户每月只能接收4条，无论在公众平台网站上，还是使用接口群发，用户每月只能接收4条群发消息，多于4条的群发将对该用户发送失败；
		/// 3、具备微信支付权限的公众号，在使用群发接口上传、群发图文消息类型时，可使用<a>标签加入外链；
		/// 4、开发者可以使用预览接口校对消息样式和排版，通过预览接口可发送编辑好的消息给指定用户校验效果。
		/// </summary>
		public static string Mass2Group { get { return "https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token={0}"; } }

		/// <summary> 群发到用户列表 </summary>
		public static string Mass2UserList { get { return "https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token={0}"; } }

		/// <summary> 群发消息预览 </summary>
		public static string MassPreview { get { return "https://api.weixin.qq.com/cgi-bin/message/mass/preview?access_token={0}"; } }

		/// <summary> 获取自动回复规则 </summary>
		public static string GetAutoReplyInfo { get { return "https://api.weixin.qq.com/cgi-bin/get_current_autoreply_info?access_token={0}"; } }

		/// <summary> 创建分组 </summary>
		public static string GroupsCreate { get { return "https://api.weixin.qq.com/cgi-bin/groups/create?access_token={0}"; } }

		/// <summary> 查询所有分组 </summary>
		public static string GetGroups { get { return "https://api.weixin.qq.com/cgi-bin/groups/get?access_token={0}"; } }

		/// <summary> 查询所在分组 </summary>
		public static string GetGroupId { get { return "https://api.weixin.qq.com/cgi-bin/groups/getid?access_token={0}"; } }

		/// <summary> 修改分组名 </summary>
		public static string UpdateGroup { get { return "https://api.weixin.qq.com/cgi-bin/groups/update?access_token={0}"; } }

		/// <summary> 移动用户到指定分组 </summary>
		public static string ToGroup { get { return "https://api.weixin.qq.com/cgi-bin/groups/members/update?access_token={0}"; } }

		/// <summary> 设置备注名 </summary>
		public static string UpdateRemark { get { return "https://api.weixin.qq.com/cgi-bin/user/info/updateremark?access_token={0}"; } }

		/// <summary>
		/// 上传多媒体文件上传的多媒体文件有格式和大小限制，如下：
		/// 图片（image）: 1M，支持JPG格式
		/// 语音（voice）：2M，播放长度不超过60s，支持AMR\MP3格式
		/// 视频（video）：10MB，支持MP4格式
		/// 缩略图（thumb）：64KB，支持JPG格式
		/// 媒体文件在后台保存时间为3天，即3天后media_id失效。
		/// </summary>
		public static string UploadMedia { get { return "http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}"; } }

		/// <summary>
		/// 新增其他类型永久素材
		/// </summary>
		public static string AddMaterial { get { return "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token={0}"; } }

		/// <summary>
		/// 新增永久图文素材
		/// </summary>
		public static string AddNewsMaterial { get { return "https://api.weixin.qq.com/cgi-bin/material/add_news?access_token={0}"; } }

		/// <summary> 下载多媒体文件
		/// 请注意，视频文件不支持https下载，调用该接口需http协议。
		/// </summary>
		public static string DownLoadMedia { get { return "https://api.weixin.qq.com/cgi-bin/media/get?access_token={0}&media_id={1}"; } }


		/// <summary>
		/// 上传图文消息素材
		/// 高级群发接口
		/// </summary>
		public static string UploadNews { get { return "https://api.weixin.qq.com/cgi-bin/media/uploadnews?access_token={0}"; } }

		/// <summary>
		/// 上传群发接口的视频素材
		/// </summary>
		public static string UploadVideoMedia { get { return "https://file.api.weixin.qq.com/cgi-bin/media/uploadvideo?access_token={0}"; } }

		/// <summary>
		/// 删除群发消息
		/// </summary>
		public static string DeleteMass { get { return "https://api.weixin.qq.com/cgi-bin/message/mass/delete?access_token={0}"; } }

		/// <summary>
		/// 获取群发消息状态
		/// </summary>
		public static string GetMassStatus { get { return "https://api.weixin.qq.com/cgi-bin/message/mass/get?access_token={0}"; } }

		/// <summary>
		/// 设置行业可在MP中完成，每月可修改行业1次，账号仅可使用所属行业中相关的模板，为方便第三方开发者，提供通过接口调用的方式来修改账号所属行业，具体如下：
		/// </summary>
		public static string SetIndustry { get { return "https://api.weixin.qq.com/cgi-bin/template/api_set_industry?access_token={0}"; } }

		/// <summary>
		/// 获得模板ID 从行业模板库选择模板到账号后台，获得模板ID的过程可在MP中完成。为方便第三方开发者，提供通过接口调用的方式来修改账号所属行业，具体如下：
		/// </summary>
		public static string AddTemplate { get { return "https://api.weixin.qq.com/cgi-bin/template/api_add_template?access_token={0}"; } }

		/// <summary>
		/// 发送模版消息
		/// </summary>
		public static string SendTemplateMessage { get { return "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={0}"; } }

		/// <summary>
		/// 获取用户信息
		/// </summary>
		public static string GetUserInfo { get { return "https://api.weixin.qq.com/cgi-bin/user/info?access_token={0}&openid={1}&lang=zh_CN"; } }

		/// <summary>
		/// 获取用户列表
		/// </summary>
		public static string GetUserList { get { return "https://api.weixin.qq.com/cgi-bin/user/get?access_token={0}"; } }

		/// <summary>
		/// 创建菜单
		/// </summary>
		public static string CreateMenu { get { return "https://api.weixin.qq.com/cgi-bin/menu/create?access_token={0}"; } }

		/// <summary>
		/// 查询菜单
		/// </summary>
		public static string GetMenu { get { return "https://api.weixin.qq.com/cgi-bin/menu/get?access_token={0}"; } }

		/// <summary>
		/// 删除菜单
		/// </summary>
		public static string DeleteMenu { get { return "https://api.weixin.qq.com/cgi-bin/menu/delete?access_token={0}"; } }

		/// <summary>
		/// 长连接转短连接
		/// </summary>
		public static string GetShortUrl { get { return "https://api.weixin.qq.com/cgi-bin/shorturl?access_token={0}"; } }

		/// <summary>
		/// 微支付 提交被扫支付
		/// </summary>
		public static string MicroPay { get { return "https://api.mch.weixin.qq.com/pay/micropay"; } }

		/// <summary>
		/// 被扫订单查询
		/// </summary>
		public static string OrderQuery { get { return "https://api.mch.weixin.qq.com/pay/orderquery "; } }

		/// <summary>
		/// 创建预支付订单
		/// </summary>
		public static string GenprePay { get { return "https://api.weixin.qq.com/pay/genprepay?access_token={0}"; } }

		/// <summary>
		/// 创建预支付订单
		/// </summary>
		public static string UnifiedOrder { get { return "https://api.mch.weixin.qq.com/pay/unifiedorder"; } }

	}

}
